/*
 * @(#)DataHandlerInfo.java $version 2012-3-2
 * 
 * Copyright 2011 RogueDevelopment Gruop. All rights Reserved.
 * ROGUEDEVELOPMENT PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.nadostar.extensions.data;

/**
 * @author LEESUNG
 *
 */
public class DataHandlerInfo {
	public static final String DEFAULT_NAME = "default";
	public static final String TYPE_DOM4J = "dom4j";
	public static final String TYPE_JAXP = "jaxp";

	/**
	 * DataHandler 의 외부 참조 이름
	 */
	private String name = DEFAULT_NAME;

	/**
	 * DataHandler가 처리하는 xml 파일의 위치
	 */
	private String location;

	/**
	 * 사용하고자 하는 DataHandler 의 종류
	 */
	private String type = TYPE_DOM4J;

	/**
	 * 데이터 캐시 기능의 상태를 설정한다.
	 */
	private boolean cached;

	/**
	 * 리로딩 여부를 설정한다.
	 */
	private boolean reload;

	/**
	 * Instantiates a new data handler info.
	 */
	public DataHandlerInfo() {
	}

	/**
	 * Instantiates a new data handler info.
	 * 
	 * @param name the name
	 */
	public DataHandlerInfo(String name) {
		this.name = name;
	}

	/**
	 * DataHandler 의 외부 참조 이름을 반환한다.
	 *
	 * @return 외부 참조 이름
	 */
	public String getName() {
		return name;
	}

	/**
	 * DataHandler 의 외부 참조 이름을 설정한다.
	 *
	 * @param name 외부 참조 이름
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * DataHandler가 참조하는 리소스의 위치를 반환한다.
	 *
	 * @return 리소스의 위치
	 */
	public String getLocation() {
		return location;
	}

	/**
	 * DataHandler가 참조하는 리소스의 위치를 설정한다.
	 *
	 * @param location 리소스의 위치
	 */
	public void setLocation(String location) {
		this.location = location;
	}

	/**
	 * DataHandler 의 종류를 반환한다.
	 * @return type String
	 */
	public String getType() {
		return type;
	}

	/**
	 * DataHandler 의 종류를 설정한다.
	 * @param type String
	 */
	public void setType(String type) {
		this.type = type;
	}

	/**
	 * caching 여부를 반환한다.
	 * @return cached boolean
	 */
	public boolean isCached() {
		return cached;
	}

	/**
	 * caching 여부를 설정한다.
	 * @param cached boolean
	 */
	public void setCached(boolean cached) {
		this.cached = cached;
	}

	/**
	 * Checks if is reload.
	 * 
	 * @return true, if is reload
	 */
	public boolean isReload() {
		return reload;
	}

	/**
	 * Sets the reload.
	 * 
	 * @param reload the new reload
	 */
	public void setReload(boolean reload) {
		this.reload = reload;
	}

	/**
	 * @see java.lang.Object#toString()
	 * @return String
	 */
	public String toString() {
		return name + "=" + location + "[" + type + (reload ? ":reload" : "") + (cached ? ":cached" : "") + "]";
	}
}
